// 递归函数定义：addTwoNumbers 表示将两个链表 l1 和 l2 相加得到的新链表；
// 递归终止条件：如果 l1 和 l2 有一个为空，则返回另外一个。
// 递归函数内容：
//     把两个链表节点的值相加（结果记为 add ）。把 add 模 101010
//     作为当前的链表节点的值。 把两个链表的 next
//     节点相加。（注意：如果当前相加的结果 add>=10add >= 10add>=10，需要把
//	next 节点相加得到的结果 + 1。）

class Solution {
 public:
  // 简单模拟
  ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
    if (!l1) return l2;
    if (!l2) return l1;
    int sum = l1->val + l2->val;
    ListNode* node = new ListNode(sum % 10);
    node->next = addTwoNumbers(l1->next, l2->next);
    if (sum >= 10) node->next = addTwoNumbers(node->next, new ListNode(1));
    // node->next=addTwoNumbers(l1->next,l2->next);
    return node;
  }
  // 作者：fuxuemingzhu
  // 链接：https://leetcode-cn.com/problems/add-two-numbers/solution/fu-xue-ming-zhu-xiang-jie-qiu-jia-fa-xun-6bah/
  // 来源：力扣（LeetCode）
  // 著作权归作者所有。商业转载请联系作者获得授权，非商业转载请注明出处。
